home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / egem_200.lzh / EGEM.2_0 / SOURCE / IMAGE.C < prev    next >
Encoding:
C/C++ Source or Header  |  1994-09-07  |  10.6 KB  |  233 lines

  1.  
  2. #define NULL    ((void *) 0l)
  3.  
  4. typedef struct
  5. {
  6.     int        *hi_on,*hi_off,*lo_on,*lo_off;
  7. } IMAGE;
  8.  
  9. typedef struct
  10. {
  11.     int        count;
  12.     IMAGE    *image;
  13. } IMAGES;
  14.  
  15. static int radio_hi_on[] = {
  16. 0x0000, 0x03E0, 0x0FF8, 0x1C0C, 0x3942, 0x32A2, 0x6551, 0x6AA9,
  17. 0x6551, 0x6AA9, 0x6551, 0x22A2, 0x3142, 0x1004, 0x0C18, 0x03E0,
  18. 0x07C0, 0x1830, 0x2008, 0x47C4, 0x4FE4, 0x9FF2, 0x9FF2, 0x9FF2,
  19. 0x9FF2, 0x9FF2, 0x4FE4, 0x47C4, 0x2008, 0x1830, 0x07C0, 0x0000,
  20. 0x0000, 0x03C0, 0x0C30, 0x1008, 0x23C4, 0x27E4, 0x4FF2, 0x4FF2,
  21. 0x4FF2, 0x4FF2, 0x27E4, 0x23C4, 0x1008, 0x0C30, 0x03C0, 0x0000,
  22. 0x0000, 0x03C0, 0x0C30, 0x1188, 0x27E4, 0x2FF4, 0x4FF2, 0x5FFA,
  23. 0x5FFA, 0x4FF2, 0x2FF4, 0x27E4, 0x1188, 0x0C30, 0x03C0, 0x0000,
  24. 0x0000, 0x0000, 0x03C0, 0x0C30, 0x1008, 0x13C8, 0x27E4, 0x27E4,
  25. 0x27E4, 0x27E4, 0x13C8, 0x1008, 0x0C30, 0x03C0, 0x0000, 0x0000,
  26. 0x0000, 0x43C2, 0x2C34, 0x1008, 0x2814, 0x2424, 0x4242, 0x4182,
  27. 0x4182, 0x4242, 0x2424, 0x2814, 0x1008, 0x2C34, 0x43C2, 0x0000,
  28. 0x0000, 0x03C0, 0x0C30, 0x1008, 0x23C4, 0x2624, 0x4F92, 0x4FD2,
  29. 0x4FF2, 0x4FF2, 0x27E4, 0x23C4, 0x1008, 0x0C30, 0x03C0, 0x0000,
  30. 0x0000, 0x03C0, 0x0C30, 0x1008, 0x23C4, 0x27E4, 0x4FF2, 0x4FF2,
  31. 0x4FF2, 0x4FF2, 0x27E4, 0x23C4, 0x1008, 0x0C30, 0x03C0, 0x0000 };
  32.  
  33. static int radio_hi_off[] = {
  34. 0x0000, 0x03e0, 0x0c18, 0x1004, 0x2006, 0x2002, 0x4003, 0x4003,
  35. 0x4003, 0x4003, 0x4003, 0x2006, 0x200e, 0x181c, 0x0ff8, 0x03e0,
  36. 0x07C0, 0x1830, 0x2008, 0x4004, 0x4004, 0x8002, 0x8002, 0x8002,
  37. 0x8002, 0x8002, 0x4004, 0x4004, 0x2008, 0x1830, 0x07C0, 0x0000,
  38. 0x0000, 0x03C0, 0x0C30, 0x1008, 0x2004, 0x2004, 0x4002, 0x4002,
  39. 0x4002, 0x4002, 0x2004, 0x2004, 0x1008, 0x0C30, 0x03C0, 0x0000,
  40. 0x0000, 0x03C0, 0x0C30, 0x1008, 0x2004, 0x2004, 0x4002, 0x4002,
  41. 0x4002, 0x4002, 0x2004, 0x2004, 0x1008, 0x0C30, 0x03C0, 0x0000,
  42. 0x0000, 0x03C0, 0x0C30, 0x1008, 0x2004, 0x2004, 0x4002, 0x4002,
  43. 0x4002, 0x4002, 0x2004, 0x2004, 0x1008, 0x0C30, 0x03C0, 0x0000,
  44. 0x0000, 0x0000, 0x03C0, 0x0C30, 0x1008, 0x1008, 0x2004, 0x2004,
  45. 0x2004, 0x2004, 0x1008, 0x1008, 0x0C30, 0x03C0, 0x0000, 0x0000,
  46. 0x0000, 0x03C0, 0x0C30, 0x1008, 0x23C4, 0x2424, 0x4812, 0x4812,
  47. 0x4812, 0x4812, 0x2424, 0x23C4, 0x1008, 0x0C30, 0x03C0, 0x0000,
  48. 0x0000, 0x03C0, 0x0C30, 0x1008, 0x23C4, 0x2424, 0x4812, 0x4812,
  49. 0x4812, 0x4812, 0x2424, 0x23C4, 0x1008, 0x0C30, 0x03C0, 0x0000 };
  50.  
  51. static int radio_lo_on[] = {
  52. 0x0FF0, 0x781E, 0xE3C7, 0xCFF3, 0xCFF3, 0xE3C7, 0x781E, 0x0FF0 };
  53.  
  54. static int radio_lo_off[] = {
  55. 0x0FF0, 0x781E, 0xE007, 0xC003, 0xC003, 0xE007, 0x781E, 0x0FF0 };
  56.  
  57. static int check_hi_on[] = {
  58. 0x0000, 0x7FFF, 0x4001, 0x580D, 0x5C1D, 0x4E39, 0x4771, 0x43E1,
  59. 0x41C1, 0x43E1, 0x4771, 0x4E39, 0x5C1D, 0x580D, 0x4001, 0x7FFF,
  60. 0x0000, 0x7FFE, 0x6006, 0x500A, 0x4812, 0x4422, 0x4242, 0x4182,
  61. 0x4182, 0x4242, 0x4422, 0x4812, 0x500A, 0x6006, 0x7FFE, 0x0000,
  62. 0x0000, 0x7FFE, 0x4002, 0x500A, 0x4812, 0x4422, 0x4242, 0x4182,
  63. 0x4182, 0x4242, 0x4422, 0x4812, 0x500A, 0x4002, 0x7FFE, 0x0000,
  64. 0x0000, 0x7FFE, 0x4002, 0x500A, 0x4812, 0x4422, 0x4242, 0x4182,
  65. 0x4182, 0x4242, 0x4422, 0x4812, 0x500A, 0x4002, 0x7FFE, 0x0000,
  66. 0x0000, 0x4002, 0x3FFC, 0x300C, 0x2814, 0x2424, 0x2244, 0x2184,
  67. 0x2184, 0x2244, 0x2424, 0x2814, 0x300C, 0x3FFC, 0x4002, 0x0000,
  68. 0x0000, 0x7FFE, 0x7FFE, 0x6002, 0x6002, 0x6002, 0x601A, 0x6032,
  69. 0x6262, 0x66C2, 0x6782, 0x6702, 0x6602, 0x6002, 0x7FFE, 0x0000 };
  70.  
  71. static int check_hi_off[] = {
  72. 0x0000, 0x7FFF, 0x4001, 0x4001, 0x4001, 0x4001, 0x4001, 0x4001,
  73. 0x4001, 0x4001, 0x4001, 0x4001, 0x4001, 0x4001, 0x4001, 0x7FFF,
  74. 0x0000, 0x7FFE, 0x4002, 0x4002, 0x4002, 0x4002, 0x4002, 0x4002,
  75. 0x4002, 0x4002, 0x4002, 0x4002, 0x4002, 0x4002, 0x7FFE, 0x0000,
  76. 0x0000, 0x7FFE, 0x4002, 0x4002, 0x4002, 0x4002, 0x4002, 0x4002,
  77. 0x4002, 0x4002, 0x4002, 0x4002, 0x4002, 0x4002, 0x7FFE, 0x0000,
  78. 0x0000, 0x0000, 0x3FFC, 0x2004, 0x2004, 0x2004, 0x2004, 0x2004,
  79. 0x2004, 0x2004, 0x2004, 0x2004, 0x2004, 0x3FFC, 0x0000, 0x0000,
  80. 0x0000, 0x0000, 0x3FFC, 0x2004, 0x2004, 0x2004, 0x2004, 0x2004,
  81. 0x2004, 0x2004, 0x2004, 0x2004, 0x2004, 0x3FFC, 0x0000, 0x0000,
  82. 0xFFFC, 0x8006, 0x8006, 0x8006, 0x8006, 0x8006, 0x8006, 0x8006,
  83. 0x8006, 0x8006, 0x8006, 0x8006, 0x8006, 0xFFFE, 0x7FFE, 0x0000 };
  84.  
  85. static int check_lo_on[] =
  86. { 0x7FFC, 0x701C, 0x4C64, 0x4384, 0x4C64, 0x701C, 0x7FFC ,0x0000 };
  87.  
  88. static int check_lo_off[] =
  89. { 0x7FFC, 0x4004, 0x4004, 0x4004, 0x4004, 0x4004, 0x7FFC ,0x0000 };
  90.  
  91. static int cycle_hi[] = {
  92. 0x0000, 0x1000, 0x19C0, 0x1C30, 0x1E08, 0x0008, 0x2004, 0x2004,
  93. 0x2004, 0x2004, 0x1000, 0x1078, 0x0C38, 0x0398, 0x0008, 0x0000,
  94. 0x0000, 0x0180, 0x03C0, 0x07E0, 0x0FF0, 0x1FF8, 0x3FFC, 0x0000,
  95. 0x0000, 0x3FFC, 0x1FF8, 0x0FF0, 0x07E0, 0x03C0, 0x0180, 0x0000 };
  96.  
  97. static int cycle_lo[] = {
  98. 0x0800, 0x0FE0, 0x0F18, 0x2004, 0x2004, 0x18F0, 0x07F0, 0x0010 };
  99.  
  100. static int arrow_up_lo_sel[] = {
  101. 0x0000, 0x0180, 0x0180, 0x03C0, 0x03C0, 0x07E0, 0x07E0, 0x0000 };
  102. static int arrow_up_lo[] = {
  103. 0x0000, 0x0180, 0x0180, 0x0240, 0x0240, 0x0420, 0x07E0, 0x0000};
  104.  
  105. static int arrow_dn_lo_sel[] = {
  106. 0x0000, 0x07E0, 0x07E0, 0x03E0, 0x03C0, 0x0180, 0x0180, 0x0000};
  107. static int arrow_dn_lo[] = {
  108. 0x0000, 0x07E0, 0x0420, 0x0240, 0x0240, 0x0180, 0x0180, 0x0000};
  109.  
  110. static int arrow_right_lo_sel[] = {
  111. 0x0000, 0x3C00, 0x3FC0, 0x3FFC, 0x3FC0, 0x3C00, 0x0000 , 0x0000};
  112. static int arrow_right_lo[] = {
  113. 0x0000, 0x3C00, 0x23C0, 0x203C, 0x23C0, 0x3C00, 0x0000 , 0x0000};
  114.  
  115. static int arrow_left_lo_sel[] = {
  116. 0x0000, 0x001E, 0x01FE, 0x1FFE, 0x01FE, 0x001E, 0x0000, 0x0000 };
  117. static int arrow_left_lo[] = {
  118. 0x0000, 0x001E, 0x01E2, 0x1E02, 0x01E2, 0x001E, 0x0000, 0x0000 };
  119.  
  120. static int arrow_up_hi_sel[] = {
  121. 0x0000, 0x0000, 0x0080, 0x00C0, 0x01C0, 0x01E0, 0x03E0, 0x03F0,
  122. 0x07F0, 0x07F8, 0x0FF8, 0x0FFC, 0x1FFC, 0x1FFE, 0x0FFE, 0x0000,
  123. 0x0000, 0x0000, 0x0180, 0x0180, 0x03C0, 0x03C0, 0x07E0, 0x07E0,
  124. 0x0FF0, 0x0FF0, 0x1FF8, 0x1FF8, 0x3FFC, 0x3FFC, 0x0000, 0x0000,
  125. 0x0000, 0x0180, 0x03C0, 0x07E0, 0x0FF0, 0x1FF8, 0x3FFC, 0x7FFE,
  126. 0x7FFE, 0x7FFE, 0x0FF0, 0x0FF0, 0x0FF0, 0x0FF0, 0x0000, 0x0000 };
  127.  
  128. static int arrow_up_hi[] = {
  129. 0x0000, 0x0000, 0x0080, 0x00C0, 0x0140, 0x0160, 0x0220, 0x0230,
  130. 0x0410, 0x0418, 0x0808, 0x080C, 0x1004, 0x1FFE, 0x0FFE, 0x0000,
  131. 0x0000, 0x0000, 0x0180, 0x0180, 0x0240, 0x0240, 0x0420, 0x0420,
  132. 0x0810, 0x0810, 0x1008, 0x1008, 0x2004, 0x3FFC, 0x0000, 0x0000,
  133. 0x0000, 0x0180, 0x03C0, 0x0660, 0x0C30, 0x1818, 0x300C, 0x6006,
  134. 0x4002, 0x781E, 0x0810, 0x0810, 0x0810, 0x0FF0, 0x0000, 0x0000 };
  135.  
  136. static int arrow_dn_hi_sel[] = {
  137. 0x0000, 0x0000, 0x1FFC, 0x1FFC, 0x1FFC, 0x0FF8, 0x0FF8, 0x07F0,
  138. 0x07F0, 0x03E0, 0x03E0, 0x01C0, 0x01C0, 0x0080, 0x0000, 0x0000,
  139. 0x0000, 0x0000, 0x3FFC, 0x3FFC, 0x1FF8, 0x1FF8, 0x0FF0, 0x0FF0,
  140. 0x07E0, 0x07E0, 0x03C0, 0x03C0, 0x0180, 0x0180, 0x0000, 0x0000,
  141. 0x0000, 0x0000, 0x0FF0, 0x0FF0, 0x0FF0, 0x0FF0, 0x7FFE, 0x7FFE,
  142. 0x7FFE, 0x3FFC, 0x1FF8, 0x0FF0, 0x07E0, 0x03C0, 0x0180, 0x0000 };
  143.  
  144. static int arrow_dn_hi[] = {
  145. 0x0000, 0x0000, 0x1FFC, 0x100C, 0x180C, 0x0818, 0x0C18, 0x0430,
  146. 0x0630, 0x0260, 0x0360, 0x01C0, 0x01C0, 0x0080, 0x0000, 0x0000,
  147. 0x0000, 0x0000, 0x3FFC, 0x2004, 0x1008, 0x1008, 0x0810, 0x0810,
  148. 0x0420, 0x0420, 0x0240, 0x0240, 0x0180, 0x0180, 0x0000, 0x0000,
  149. 0x0000, 0x0000, 0x0FF0, 0x0810, 0x0810, 0x0810, 0x781E, 0x4002,
  150. 0x6006, 0x300C, 0x1818, 0x0C30, 0x0660, 0x03C0, 0x0180, 0x0000 };
  151.  
  152. static int arrow_left_hi_sel[] = {
  153. 0x0000, 0x0000, 0x000C, 0x003E, 0x00FE, 0x03FE, 0x0FFE, 0x3FFE,
  154. 0x1FFE, 0x07FE, 0x01FE, 0x007E, 0x001E, 0x0006, 0x0000, 0x0000,
  155. 0x0000, 0x0000, 0x000C, 0x003C, 0x00FC, 0x03FC, 0x0FFC, 0x3FFC,
  156. 0x3FFC, 0x0FFC, 0x03FC, 0x00FC, 0x003C, 0x000C, 0x0000, 0x0000,
  157. 0x0000, 0x01C0, 0x03C0, 0x07C0, 0x0FFC, 0x1FFC, 0x3FFC, 0x7FFC,
  158. 0x7FFC, 0x3FFC, 0x1FFC, 0x0FFC, 0x07C0, 0x03C0, 0x01C0, 0x0000 };
  159.  
  160. static int arrow_left_hi[] = {
  161. 0x0000, 0x0000, 0x000C, 0x0036, 0x00C6, 0x0306, 0x0C06, 0x3006,
  162. 0x1C06, 0x0706, 0x01C6, 0x0076, 0x001E, 0x0006, 0x0000, 0x0000,
  163. 0x0000, 0x0000, 0x000C, 0x0034, 0x00C4, 0x0304, 0x0C04, 0x3004,
  164. 0x3004, 0x0C04, 0x0304, 0x00C4, 0x0034, 0x000C, 0x0000, 0x0000,
  165. 0x0000, 0x01C0, 0x0340, 0x0640, 0x0C7C, 0x1804, 0x3004, 0x6004,
  166. 0x6004, 0x3004, 0x1804, 0x0C7C, 0x0640, 0x0340, 0x01C0, 0x0000 };
  167.  
  168. static int arrow_right_hi_sel[] = {
  169. 0x0000, 0x0000, 0x3000, 0x3C00, 0x3F00, 0x3FC0, 0x3FF0, 0x3FFC,
  170. 0x3FFE, 0x3FF8, 0x3FE0, 0x3F80, 0x3E00, 0x1800, 0x0000, 0x0000,
  171. 0x0000, 0x0000, 0x3000, 0x3C00, 0x3F00, 0x3FC0, 0x3FF0, 0x3FFC,
  172. 0x3FFC, 0x3FF0, 0x3FC0, 0x3F00, 0x3C00, 0x3000, 0x0000, 0x0000,
  173. 0x0000, 0x0380, 0x03C0, 0x03E0, 0x3FF0, 0x3FF8, 0x3FFC, 0x3FFE,
  174. 0x3FFE, 0x3FFC, 0x3FF8, 0x3FF0, 0x03E0, 0x03C0, 0x0380, 0x0000 };
  175.  
  176. static int arrow_right_hi[] = {
  177. 0x0000, 0x0000, 0x3000, 0x2C00, 0x2300, 0x20C0, 0x2030, 0x200C,
  178. 0x203E, 0x20F8, 0x23E0, 0x2F80, 0x3E00, 0x1800, 0x0000, 0x0000,
  179. 0x0000, 0x0000, 0x3000, 0x2C00, 0x2300, 0x20C0, 0x2030, 0x200C,
  180. 0x200C, 0x2030, 0x20C0, 0x2300, 0x2C00, 0x3000, 0x0000, 0x0000,
  181. 0x0000, 0x0380, 0x02C0, 0x0260, 0x3E30, 0x2018, 0x200C, 0x2006,
  182. 0x2006, 0x200C, 0x2018, 0x3E30, 0x0260, 0x02C0, 0x0380, 0x0000 };
  183.  
  184. static IMAGE radio_im[] = {
  185. {radio_hi_on+32,radio_hi_off+32,radio_lo_on,radio_lo_off},
  186. {radio_hi_on,radio_hi_off,NULL,NULL},
  187. {radio_hi_on+16,radio_hi_off+16,NULL,NULL},
  188. {radio_hi_on+48,radio_hi_off+48,NULL,NULL},
  189. {radio_hi_on+64,radio_hi_off+80,NULL,NULL},
  190. {radio_hi_on+80,radio_hi_off+64,NULL,NULL},
  191. {radio_hi_on+96,radio_hi_off+96,NULL,NULL},
  192. {radio_hi_on+112,radio_hi_off+112,NULL,NULL} };
  193.  
  194. static IMAGE check_im[] = {
  195. {check_hi_on+16,check_hi_off+16,check_lo_on,check_lo_off},
  196. {check_hi_on,check_hi_off,NULL,NULL},
  197. {check_hi_on+32,check_hi_off+48,NULL,NULL},
  198. {check_hi_on+48,check_hi_off+32,NULL,NULL},
  199. {check_hi_on+64,check_hi_off+64,NULL,NULL},
  200. {check_hi_on+80,check_hi_off+80,NULL,NULL} };
  201.  
  202. static IMAGE cycle_im[] = {
  203. {cycle_hi,NULL,cycle_lo,NULL},
  204. {cycle_hi+16,NULL,NULL,NULL} };
  205.  
  206. static IMAGE arrow_up_im[] = {
  207. {arrow_up_hi_sel,arrow_up_hi,arrow_up_lo_sel,arrow_up_lo},
  208. {arrow_up_hi_sel+16,arrow_up_hi+16,NULL,NULL},
  209. {arrow_up_hi_sel+32,arrow_up_hi+32,NULL,NULL} };
  210.  
  211. static IMAGE arrow_dn_im[] = {
  212. {arrow_dn_hi_sel,arrow_dn_hi,arrow_dn_lo_sel,arrow_dn_lo},
  213. {arrow_dn_hi_sel+16,arrow_dn_hi+16,NULL,NULL},
  214. {arrow_dn_hi_sel+32,arrow_dn_hi+32,NULL,NULL} };
  215.  
  216. static IMAGE arrow_left_im[] = {
  217. {arrow_left_hi_sel,arrow_left_hi,arrow_left_lo_sel,arrow_left_lo},
  218. {arrow_left_hi_sel+16,arrow_left_hi+16,NULL,NULL},
  219. {arrow_left_hi_sel+32,arrow_left_hi+32,NULL,NULL} };
  220.  
  221. static IMAGE arrow_right_im[] = {
  222. {arrow_right_hi_sel,arrow_right_hi,arrow_right_lo_sel,arrow_right_lo},
  223. {arrow_right_hi_sel+16,arrow_right_hi+16,NULL,NULL},
  224. {arrow_right_hi_sel+32,arrow_right_hi+32,NULL,NULL} };
  225.  
  226. IMAGES _radios = { 8, radio_im };
  227. IMAGES _checks = { 6, check_im };
  228. IMAGES _cycles = { 2, cycle_im };
  229. IMAGES _arrows_up    = { 3, arrow_up_im };
  230. IMAGES _arrows_down    = { 3, arrow_dn_im };
  231. IMAGES _arrows_right    = { 3, arrow_right_im };
  232. IMAGES _arrows_left    = { 3, arrow_left_im };
  233.